home *** CD-ROM | disk | FTP | other *** search
/ The Business Master (3rd Edition) / The Business Master (3rd Edition).iso / files / utilstem / anarkey / update.doc < prev   
Text File  |  1989-10-01  |  27KB  |  544 lines

  1.  
  2.  
  3.  
  4.                         ANARKEY 3.00 Update Information
  5.                         -------------------------------
  6.  
  7.  
  8.    Welcome to ANARKEY Version 3.00.
  9.  
  10.  
  11.    This document is to inform current ANARKEY users of the new features and
  12. enhancements in version 3.00.  With this information, upgrading to the new
  13. release will be a quick and easy experience.
  14.  
  15.    All of the features explained here are also included in the various
  16. manuals contained in the ANARKEY distribution package.  New ANARKEY users
  17. are encouraged to read the FASTART.DOC file and the other manuals so that
  18. they will be able to use all the powerful ANARKEY features to their fullest
  19. capabilities.
  20.  
  21.  
  22.  
  23.                                 ANARKEY 3.00
  24.                                 ------------
  25.  
  26. Support for Expanded Memory
  27. ---------------------------
  28.    ANARKEY now supports the Lotus-Intel-Microsoft Expanded Memory
  29. Specification commonly referred to as LIM EMS.  All versions of the LIM spec
  30. are supported, including versions 3.2 and 4.0.
  31.  
  32.    When using expanded memory, ANARKEY will store its history buffer, AKA
  33. definitions and most of its code in expanded memory.  ANARKEY uses less than
  34. 1000 bytes of conventional memory, i.e. memory below 640K, when using
  35. expanded memory and there is no noticeable degradation in response time,
  36. even on original 4.77 MHz PC's.
  37.  
  38.    To have ANARKEY use expanded memory, simply add a -E option to your
  39. normal installation line.
  40.  
  41.    In conjunction with expanded memory support, the -M option which displays
  42. ANARKEY memory usage without actually installing the program has been
  43. enhanced to include expanded memory information.  This can be used to
  44. optimize your memory consumption when configuring history and AKA buffer
  45. sizes.
  46.  
  47.    The "Installation Options" section of the "ANARKEY User Manual" describes
  48. the -E and enhanced -M options.
  49.  
  50.  
  51. The Mega-Key, All-in-One Completion
  52. -----------------------------------
  53.    ANARKEY provides a function which combines the operations of the
  54. following functions in a single key:
  55.  
  56.           Find-History-Buffer-Match-and-Edit      <F5>, <Ctrl-K>
  57.           Complete-Directory-Name                 <F7>, <Ctrl-D>
  58.           Complete-File-or-Program-Name           <F8>, <Ctrl-F>
  59.           Retrieve-Environment-Variable           <F9>, <Ctrl-E>
  60.  
  61.    The name of this combined function is Mega-Completion because it performs
  62. all of the above completions in a single function.  Mega-Completion analyzes
  63. your command line, determines the type of completion you are most-likely
  64. attempting and performs it for you automatically.  You do not need to tell
  65. ANARKEY what to complete.  Whether it's a file name, environment variable,
  66. directory name or a line retrieved from the history buffer, ANARKEY will
  67. figure that out itself and do it!
  68.  
  69.    The keystroke assigned to the Mega-Completion function is referred to as
  70. the "Mega-Key."
  71.  
  72.    Among its advantages, the Mega-Key will save you from having to remember
  73. all the keys associated with each of the individual functions.  Simply hit
  74. the Mega-Key no matter what you want to do and ANARKEY will do the rest.
  75.  
  76.    By default, the Mega-Completion function is mapped to the <Tab> key.  Of
  77. course, it can be reassigned with ANARKED.
  78.  
  79.    <Tab>              -- Mega-Completion
  80.         Mega-Completion analyzes the current input line and determines which
  81.         of the following completion operations would be most appropriate:
  82.  
  83.                       Find-History-Buffer-Match-and-Edit
  84.                       Complete-Directory-Name
  85.                       Complete-File-or-Program-Name
  86.                       Retrieve-Environment-Variable
  87.  
  88.         It then executes the operation it evaluates to be the most likely.
  89.  
  90.         Mega-Completion can be invoked repeatedly to have it work down its
  91.         list of likely operations.  For example, Mega-Completion may
  92.         determine that a directory name completion is most called for.  In
  93.         this case it will first cycle through all matching directory names,
  94.         just as if you had repeatedly invoked Complete-Directory-Name.
  95.         After finishing that cycle, its analysis may conclude that the next
  96.         most likely operation is a line completion.  Thus, subsequent
  97.         invocations will search the history buffer for matching line
  98.         completions, as though you were calling the Find-History-Buffer-
  99.         Match-and-Edit function.  This kind of mega-cycling, "mega" because
  100.         it is cycling through multiple functions rather than within a single
  101.         function, can be continued until the desired completion is made.
  102.  
  103.    Mega-Completion will analyze the input line and perform the correct
  104. completion operation an amazingly high percentage of the time.  But, of
  105. course, nothing is perfect and you may occasionally have to cycle through a
  106. few undesired completions before the Mega-Key retrieves the one you want.
  107.  
  108.    You can give the Mega-Key a clue about how you want the line completed by
  109. prefacing the Mega-Completion call with one of the four functions it
  110. performs.  For example, say you have entered one or two characters on the
  111. input line and you would like to complete the line from one of the stored
  112. lines in the history buffer.  You would like to use the Mega-Completion
  113. function, but you are also, of course, in a hurry and want the Mega-Key to
  114. make the correct completion as soon as possible.  Simply invoke the Find-
  115. History-Buffer-Match-and-Edit function to retrieve the first matching
  116. history buffer line.  Then press the Mega-Key.  Mega-Completion will take
  117. the preceding line-completion operation as an instruction to perform line
  118. completions over any other type of completion operation it may otherwise
  119. determine to be appropriate.  It will pick up the history-buffer search from
  120. the point where the last line-completion operation left off and continue
  121. from there down its list of most-likely completions.  The Mega-Key will
  122. operate in this manner whenever preceded by one of the four function
  123. operations listed above.
  124.  
  125.    The Mega-Completion function is one more giant step toward a state of
  126. total Anarkey, a state without keystrokes.
  127.  
  128.    Mega-Completion documentation can be found in the "ANARKEY User Manual"
  129. in the section titled "The Mega-Key, All-in-One Completion."
  130.  
  131.  
  132. Name Completion
  133. ---------------
  134.    In the continuing quest to find the perfect name completion operation,
  135. version 3.00 further tweaks the completing of file, program and directory
  136. names.
  137.  
  138.    When a file, program or directory name (referred to simply as "name" in
  139. the future) is completed by either the Mega-Key or one of the respective
  140. completion functions, the cursor position will remain unchanged.  The list
  141. of matching name completions can then be cycled through just as in previous
  142. versions.
  143.  
  144.    During the cycling process, if you realize that there are many matching
  145. completions to cycle through, you can give the matching operation additional
  146. characters to use in its matching string by simply entering them at the
  147. current cursor position.  For example, say you have entered the following
  148. command:
  149.  
  150.                 >edit a_
  151.  
  152.    The underscore character represents the current cursor position.  You now
  153. begin a filename completion operation and ANARKEY begins cycling through all
  154. the files that begin with the letter "a".  The input line may now look like
  155. this:
  156.  
  157.                 >edit anarkey.doc
  158.                        -
  159.  
  160.    Notice that the cursor position remains unchanged, immediately following
  161. the "a" character.  After one or two matches, you suddenly remember there
  162. are 56 files that begin with the letter "a" and you don't want to cycle
  163. through all of them.  You can give the completion operation a further clue
  164. about the file you desire by simply entering additional characters of its
  165. name.  Say the specific file you want is called "ABACUS.TXT".  Since you
  166. have already entered the beginning "a", enter the "b" now.  The input line
  167. will look like:
  168.  
  169.                 >edit abnarkey.doc
  170.                         -
  171.  
  172. if you are in insert mode.  If you are in overwrite mode, the "b" will
  173. replace the "n".  In either case the cursor position is updated as shown
  174. above.  Now you may either continue the completion operation or enter more
  175. characters of the name.  If you continue completion, all the matching names
  176. will now start with the characters "ab".  For example:
  177.  
  178.                 >edit abacus.txt
  179.                         -
  180.  
  181.    This method of name completion can be used to narrow the list of matching
  182. names during the cycling operation.
  183.  
  184.    In many cases, additional arguments must be entered on the input line
  185. following a completed name.  For these arguments to be entered in the
  186. correct location on the line, the cursor position must be moved so it is
  187. after the name.  ANARKEY supports this cursor positioning automatically.
  188.  
  189.    The cursor will move automatically to the end of the completed name when
  190. any of the following characters are entered:
  191.  
  192.                      <SPACE> " * + , / : ; < = > ? \ |
  193.  
  194.    If the UNIX switchar character translations are active (via the -U
  195. installation option explained later), entering a dash(-) character will also
  196. move the cursor to the end of the completed name.  After moving to the end
  197. of the name, the pressed keystroke will be entered into the line.
  198.  
  199.    This enhancement to the name completion operation should make it easier
  200. than ever to complete file, program and directory names.
  201.  
  202.    The completion operation is explained in detail in the "ANARKEY User
  203. Manual" under the heading "Name Completion Functions."
  204.  
  205.  
  206. Environment Variable Completion
  207. -------------------------------
  208.    In previous versions, it was necessary to enter the entire environment
  209. variable name before ANARKEY would retrieve its value and enter it on the
  210. input line.  With version 3.00, environment variable names may be completed
  211. and cycled through in the same manner as file and directory names.
  212.  
  213.    To have ANARKEY complete an environment variable name, simply enter the
  214. SET command followed by zero(!) or more characters of the variable's name.
  215. Then invoke the Retrieve-Environment-Variable function (<F9> or <Ctrl-E> or
  216. the Mega-Key, <Tab>).  ANARKEY will search the list of environment variables
  217. for a matching completion.  If it finds one, the rest of the variable's name
  218. is entered on the input line followed by an equal sign and the variable's
  219. current value.  The cursor will be placed immediately after the equal sign.
  220. You may then edit the variable's name and value or, if the retrieved
  221. variable is not the one you wanted, you can invoke the function again and
  222. have it cycle through all the existing matching variables.
  223.  
  224.    Notes: At least one space must follow the SET command.  Also, name
  225. completion cannot be done on the PATH or PROMPT variables unless they are
  226. preceded on the input line by a SET command.  The current values of PATH and
  227. PROMPT can be retrieved without a SET command by specifying their entire
  228. name on the input line.
  229.  
  230.    The operation associated with the Retrieve-Environment-Variable function
  231. is also done as part of the Mega-Completion operation.  Thus, it is not
  232. necessary to explicitly tell ANARKEY it is dealing with environment
  233. variables; simply press the Mega-Key and ANARKEY will figure that out by
  234. itself!
  235.  
  236.    The Retrieve-Environment-Variable function is documented in the "ANARKEY
  237. User Manual" under "Editing Environment Variables."
  238.  
  239.  
  240. Display of History Buffer Contents
  241. ----------------------------------
  242.    The contents of the history buffer may be displayed from the bottom of
  243. the buffer to the top by invoking the Display-History-Buffer-from-Bottom
  244. function.  The default key assignment for this function is <Ctrl-F4>.  The
  245. contents of the history buffer will be displayed onscreen starting with the
  246. last line in the buffer and backtracking to the first line.  Thus, the most
  247. recently-entered lines will be displayed before older lines.  This is
  248. particularly helpful when a large history buffer is utilized.
  249.  
  250.    The history buffer can still be displayed from the top to the bottom by
  251. invoking the Display-History-Buffer-Contents function <F4>.
  252.  
  253.    The Display-History-Buffer-from-Bottom function is documented in the
  254. "ANARKEY User Manual" under "History Buffer Functions."
  255.  
  256.  
  257. UNIX Switchar Conventions
  258. -------------------------
  259.    The -U installation option which provides UNIX switchar conventions (i.e.
  260. slashes(/) in path specifications and dashes(-) as switch designators) has
  261. been significantly enhanced.  It now provides a complete environment where
  262. ALL programs can be invoked using the UNIX conventions.
  263.  
  264.    As in version 2.00, the -U option specified at installation time will
  265. cause ANARKEY to translate all slash characters to backslashes(\) and all
  266. dashes to slashes.  The 'S' modifier can be used to convert only slashes and
  267. leave dashes alone.
  268.  
  269.    What was lacking in v2.00 was a reasonable method of invoking programs
  270. that already supported the UNIX conventions.  For example, if a program
  271. already recognized the dash as the beginning of an option (or switch), it
  272. was necessary in v2.00 to specify two consecutive dashes, which would then
  273. be converted to a single dash by ANARKEY.
  274.  
  275.    Version 3.00 provides a method to indicate to ANARKEY those programs
  276. which already support the UNIX switchar conventions.  Afterward, whenever
  277. one of the programs is invoked, ANARKEY will suppress the switchar character
  278. translations for that command.  This will prevent you from having to enter
  279. the consecutive characters described above.
  280.  
  281.    ANARKEY stores the names of programs which use the UNIX conventions in an
  282. area of memory that is allocated at installation time.  Along with the -U or
  283. -US options, you may specify the size of the buffer.  The size must be
  284. immediately after the 'U' or 'S' with no spaces between them.  For example,
  285.  
  286.                 >anarkey -u100
  287.                 >anarkey -us75
  288.  
  289.    If a buffer size is not specified, ANARKEY will allocate a buffer large
  290. enough to hold 25 characters.  If the -U or -US options are not specified on
  291. the installation line, no space is allocated for the buffer.
  292.  
  293.    You tell ANARKEY which programs use UNIX conventions by entering the
  294. program name on the command line prefaced with an exclamation point (!).
  295. For example, to inform ANARKEY that the program "ANARKED" already recognizes
  296. UNIX conventions and therefore do not perform the related conversions on its
  297. command line, enter:
  298.  
  299.                 >!anarked
  300.  
  301.    If there is not enough room to store the program name in the buffer,
  302. ANARKEY will beep.  Otherwise, the name is saved and subsequent invocations
  303. of ANARKED will not have their characters translated.
  304.  
  305.    Rather than specifying program names on the DOS command line, they may be
  306. read in by LOAD.  For example, it will probably be most convenient to
  307. accumulate a list of UNIX-style programs and save their names in a disk
  308. file.  This file can then be loaded during system start-up using LOAD.
  309. Remember, each of the lines in the disk file must begin with an exclamation
  310. point.
  311.  
  312.    A list of the currently defined UNIX-style programs can be displayed by
  313. invoking the Display-Switchar-Programs function.  This function is assigned
  314. to the <Shift-F4> key by default.  ANARKED, the ANARKEY Keystroke Editor,
  315. can be used to change this assignment if you wish.
  316.  
  317.    A program can be removed from the UNIX buffer by specifying its name on
  318. the command line preceded by two (2) exclamation points.  For example, to
  319. remove the "ANARKED" program from the buffer, enter:
  320.  
  321.                 >!!anarked
  322.  
  323.    Instructions to ANARKEY to add or remove program names from the UNIX
  324. buffer can also be specified in multiple-command lines and AKAs.
  325.  
  326.    This enhanced switchar system makes it possible to consistently use UNIX
  327. conventions on any program you run.  It is much more comprehensive than the
  328. SWITCHAR-type programs available that rely on an undocumented DOS function
  329. to support UNIX conventions on internal DOS commands only.  Also, this
  330. undocumented operating system function is not included in DOS 4.xx or the
  331. DOS compatibility box of OS/2.  Thus, the ANARKEY method is not only the
  332. most powerful method, but, in certain environments, it's the only way to go.
  333.  
  334.  
  335. Sign-on Procedure for Unregistered Users
  336. ----------------------------------------
  337.    The ANARKEY software package is now distributed in two forms: a
  338. registered version and an unregistered version.
  339.  
  340.    Unregistered versions of ANARKEY require the user to go through a sign-on
  341. procedure during installation.  This procedure displays a message informing
  342. the user that the version of ANARKEY she or he is running is unregistered
  343. and lists instructions on how to receive a registered version.  At the end
  344. of the message, the user is prompted to enter an 8-digit number.  This
  345. number must be entered correctly in order for ANARKEY to continue its
  346. installation.
  347.  
  348.    All registered users receive a registered version of ANARKEY that does
  349. not require this sign-on procedure.  A registered version of ANARKEY is sent
  350. immediately to all people who send in their paid registration form.
  351.  
  352.    THE REGISTERED VERSION OF ANARKEY IS LICENSED TO THE SINGLE PERSON WHO
  353. REGISTERED THE PROGRAM AND MAY NOT BE DISTRIBUTED IN ANY MANNER.  It is
  354. unlawful to distribute the registered version of ANARKEY in any form.  Do
  355. not, repeat, do NOT distribute the registered version anywhere.
  356.  
  357.    Please respect this distribution restriction as it protects your
  358. interests in the software as well.  People who do not register the software
  359. discourage the release of future updates.
  360.  
  361.    The unregistered sign-on procedure is also discussed in the "ANARKEY User
  362. Manual" in the section "Getting Started."
  363.  
  364.  
  365. New Signature Installation Procedure under DOS 2.x, 3.0
  366. -------------------------------------------------------
  367.    Of interest to software-internals fanatics: ANARKEY now installs its
  368. program "signature" in the INT 2Fh (multiplex) interrupt for all versions of
  369. DOS.  The signature is used to prevent multiple copies of ANARKEY from being
  370. installed at the same time.
  371.  
  372.    Previous versions of ANARKEY when run under DOS 2.x or 3.0 would
  373. appropriate an unused interrupt vector between 60h and 67h, inclusive, to
  374. install the program signature.  When running under DOS 3.1 and later,
  375. ANARKEY has always used INT 2Fh.
  376.  
  377.    The -P (ANARKEY Process Number) installation option is now available at
  378. all times and is not ignored under DOS 2.x and 3.0.
  379.  
  380.    ANARKEY's internal installation procedure is documented in the "ANARKEY
  381. Internals" section of the "ANARKEY User Manual."  (This information is only
  382. provided for those interested in such matters; it is not necessary to read
  383. or understand this area to effectively use ANARKEY.)  The -P option is
  384. detailed in the "ANARKEY User Manual" under "Installation Options."
  385.  
  386.  
  387.  
  388.                                 ANARKMD 3.00
  389.                                 ------------
  390.  
  391.    ANARKMD (pronounced "anar-command") is a new support program that will
  392. invoke ANARKEY functions from the command line.  ANARKMD can be executed
  393. from an AKA or batch file to execute ANARKEY functions without having to
  394. press the necessary keystrokes yourself.  
  395.  
  396.    ANARKMD also supports two features the regular ANARKEY program does not:
  397.  
  398.         -- specification of a file name and location to which to write the
  399.         history buffer contents.  ANARKEY will always write the history
  400.         buffer to a file called "ANARKEY.LOG" in the root directory of the
  401.         current drive.  If the Write-History-Buffer-Contents function is
  402.         invoked through ANARKMD, the name and location of the file can be
  403.         specified to any valid file specification.
  404.  
  405.         -- suspending and restoring ANARKEY processing.  By using ANARKMD,
  406.         ANARKEY can be suspended indefinitely.  ANARKEY remains in memory,
  407.         however, none of its features are available.  ANARKMD can then be
  408.         used to restore ANARKEY processing.  These capabilities are not
  409.         available in ANARKEY itself and are only possible through ANARKMD.
  410.  
  411.    In addition to these new capabilities, ANARKMD can be used to toggle the
  412. input mode, clear or display the history buffer or defined AKAs and display
  413. the list of switchar programs.
  414.  
  415.    ANARKMD is really two programs in one; in addition to executing an
  416. ANARKEY function from the command line, ANARKMD can be used to execute an
  417. AKA or multiple-command input line from within a batch file.  Since ANARKEY
  418. is not active when processing a batch file, it was not possible to utilize
  419. its features from batch files in previous versions.  ANARKMD now provides
  420. this capability.
  421.  
  422.    Complete documentation on the use of ANARKMD can be found in the "ANARKMD
  423. User Manual."
  424.  
  425.  
  426.  
  427.                                 ANARKED 3.00
  428.                                 ------------
  429.  
  430. Carrying Over Key Assignments from an Earlier Version of ANARKEY
  431. ----------------------------------------------------------------
  432.    The registered version of the ANARKEY software package includes a version
  433. of ANARKED that makes upgrading from a previous version very easy.  The
  434. registered ANARKED will allow you to carry over the key assignments of a
  435. previous version (2.00 or later) of ANARKEY to the new release.  This will
  436. save you from having to go through the entire key assignment operation when
  437. you upgrade to a new version of ANARKEY.  Unregistered versions do not have
  438. this capability so each function must be reassigned individually.  (If you
  439. have been using ANARKEY for more than 30 days, it is time for you to
  440. register the program.  You will be sent a registered version with the key-
  441. carryover capability immediately upon receipt of your paid registration.)
  442.  
  443.    When upgrading, specify the -U option on the ANARKED command line.
  444. ANARKED will prompt you for two input files:
  445.  
  446.         (1) the original ANARKEY file whose key assignments you wish to
  447.             carry over and
  448.         (2) the new release ANARKEY file to which you are upgrading.
  449.  
  450.    If both files are valid ANARKEY program files, the key assignments of the
  451. old version will be transferred to the new version.
  452.  
  453.    If the new release includes new functions not supported in the earlier
  454. version, ANARKED will remove any default key assignment to these new
  455. functions so as to prevent any occurrence of a key being assigned to more
  456. than one function.  ANARKED will display a list of these new functions in a
  457. window when it begins execution.  The new functions can be assigned to a key
  458. during your ANARKED session.
  459.  
  460.    The following new functions have been added to ANARKEY 3.00 and will
  461. therefore be unassigned when transferring key assignments from version 2.00:
  462.  
  463.       Function Name                           Default Key Assignments
  464.       -------------                           -----------------------
  465.       Mega-Completion                         <Tab>
  466.       Display-History-Buffer-from-Bottom      <Ctrl-F4>
  467.       Display-Switchar-Programs               <Shift-F4>
  468.  
  469.    After transferring the key assignments to the new version, the normal
  470. ANARKED operation continues and you may modify the configuration of the new
  471. release further.  Be sure to save your changes when exiting ANARKED if you
  472. are transferring key assignments from a previous release.
  473.  
  474.    The -U option is documented in the "Getting Started" section of the
  475. "ANARKED User Manual."
  476.  
  477.  
  478. Assigning an Already-Assigned Key to the Active Keystroke Field
  479. ---------------------------------------------------------------
  480.    In previous versions, ANARKED would assign to the active keystroke field
  481. a key which was already assigned to another ANARKEY function.  ANARKED would
  482. automatically remove the original key assignment before assigning it to the
  483. active field and would then emit a beep informing the user of what it had
  484. done.
  485.  
  486.    When this occurs in version 3.00, ANARKED displays a window stating the
  487. function name to which the key is currently assigned and asks the user if it
  488. should remove the assignment.  Responding with a 'Y' (upper or lowercase) or
  489. <Enter> key will remove the key from its current assignment and assign it to
  490. the active keystroke field.  Pressing any other key will leave the key
  491. assignment and the active keystroke field unchanged.
  492.  
  493.  
  494.  
  495.                                  LOAD 3.00
  496.                                  ---------
  497.  
  498. Support for UNIX Switchar Programs
  499. ----------------------------------
  500.    As mentioned in the section on the new support for "UNIX Switchar
  501. Conventions," LOAD will recognize and process commands which begin with an
  502. exclamation point(!) as UNIX switchar program definitions.  The -M option
  503. which calculates the amount of storage required for AKA definitions has been
  504. enhanced to include support for UNIX program definitions.
  505.  
  506.    LOAD support for UNIX program definitions is described in the "LOAD User
  507. Manual."
  508.  
  509.  
  510. Suppress Processing of AKA and UNIX Definitions
  511. -----------------------------------------------
  512.    A new command-line option (-D) has been added to LOAD which instructs
  513. LOAD to not process any AKA or UNIX definitions it encounters in the loaded
  514. text file(s).  When -D is specified, AKA and UNIX definitions will not be
  515. stored in the AKA, UNIX or history buffers.
  516.  
  517.    This suppression is useful when loading files which may contain some AKA
  518. or UNIX definitions that were temporarily defined, but are no longer
  519. desired.  Such instances may occur when loading a saved history-buffer log
  520. file.
  521.  
  522.    The -D option is also explained in the "LOAD User Manual" in the section
  523. on "Command-Line Options."
  524.  
  525.  
  526.  
  527.    Please fill out the registration form and send it with your comments and
  528. suggestions to:
  529.  
  530.                                 Steven Calwas
  531.                                Moderne Software
  532.                                 P.O. Box 3638
  533.                           Santa Clara, CA 95055-3638
  534.  
  535.                               _______
  536.                          ____|__     |               (tm)
  537.                       --|       |    |-------------------
  538.                         |   ____|__  |  Association of
  539.                         |  |       |_|  Shareware
  540.                         |__|   o   |    Professionals
  541.                       -----|   |   |---------------------
  542.                            |___|___|    MEMBER
  543.  
  544.